// 
// File:   list.h
// Author: danielm
//
// Created on 11 de Maio de 2008, 10:48


#ifndef _LIST_H
#define	_LIST_H
#include "figuras.h"
#include <string>

class node{
    friend class list;
    friend class gerencyFig;
protected:
    fig *figura;
    node *next;
public:
    node();
};


class list{
    friend class gerencyFig;

protected:
    node head; // Primeiro da lista
    node *tail; // Ultimo da lista
    int tamanho;
public:
    list();
    void addList(node new_node);
    // Remover a figura por nomes
    int removerFig(std::string nome);
    // Verifica se a lista e vazia
    int vazia();
    // Retorna item na posicao i
    node *getItem(int i);
    // Retorna o ultimo da lista
    node *getUltimo();
    // Insere um elemento no fim da lista
    void inserir(fig *new_fig);
    // Insere um no numa dada posicao
    int inserirPosicao(fig *new_fig,int i);
    // Remove o elemento numa dada posicao
    int removerPosicao(int i);
};



#endif	/* _LIST_H */

